/**
 * 
 */
package com.cuc.platform.core.dao.baseInfo;

import java.util.List;

import org.springframework.dao.DataAccessException;

import com.cuc.platform.core.domain.baseInfo.Organization;

/**
 * @author peepul
 *
 * 组织机构Dao
 */
public interface OrganizationDao {
	/**
	 * 根据id标识获取对象
	 * 
	 * @param id
	 * @return Organization
	 */
	public Organization getOrg(Long id);
	
	/**
	 * 获取所有对象(非分页)
	 * 
	 * @return Organization List
	 */
	public List<Organization> getAllOrgs();
	
	/**
	 * 新增
	 * 
	 * @param organization
	 */
	public void insertOrg(Organization org) throws DataAccessException;
	
	/**
	 * 更新
	 * 
	 * @param organization
	 * @throws DataAccessException
	 */
	public void updateOrg(Organization org) throws DataAccessException;
	
	/**
	 * 根据id删除
	 * 
	 * @param id
	 */
	public int delOrg(Long id) throws DataAccessException;	
	
	/**
	 * 修改某个组织机构的状态位
	 * 	  有效：1
	 * 	  无效：0
	 * @param org
	 * @throws DataAccessException
	 */
	public void updateStatus(Organization org) throws DataAccessException;
	
	/**
	 * 根据父级节点id查找直属子级节点
	 * 
	 * 规则：过滤掉status状态为0的数据
	 */
	public List<Organization> getChildOrgs(Long parentId);
	
}
